import Vue from "vue"
import Vuex from "vuex"

Vue.use(Vuex)

import modleA from "./modleA/index.js";

let modleB={//5部分
    namespaced:true,
	state:{
		nb:2
	},
	mutations:{
		add(state){
			state.nb++;
		}
	}
}

const store=new Vuex.Store({
	state:{
		num:10,
		str:"hello",
		flag:true,
		n:100,
		arr:[1,2,3,4,5,6]
	},
	getters:{
		doarr(state){//方法，当做属性来用 
			return state.arr.filter(item=>{//数据进行二次处理
				return item>=3
			});
		}
	},
	mutations:{//要想修改state,必须通过Mutation
		//修改 num 的值
		changeNum(state,payload){//只有两个参数
		    console.log(payload);
			state.num+=payload.c;
		},
		changeN(state,payload){
			state.n+=payload;
		}
	},
	actions:{//异步 方法
		asyncChangeN(context,payload){//第一个参数context--->里面有commit方法
			console.log(context);
			setTimeout(()=>{//Action通过 commit 调用 Mutation里面的changeN
				context.commit("changeN",payload);
			},1000)
		}
	},
	modules:{
		a:modleA,
		b:modleB
	}
})

export default store;